/* flatpickr v4.5.2,, @license MIT */
!function (e, t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.flatpickr = t()
}(this, function () {
    "use strict";
    var X = function (e) {
        return ("0" + e).slice(-2)
    }, ee = function (e) {
        return !0 === e ? 1 : 0
    };

    function te(n, a, i) {
        var o;
        return void 0 === i && (i = !1), function () {
            var e = this, t = arguments;
            null !== o && clearTimeout(o), o = window.setTimeout(function () {
                o = null, i || n.apply(e, t)
            }, a), i && !o && n.apply(e, t)
        }
    }

    var ne = function (e) {
        return e instanceof Array ? e : [e]
    }, e = function () {
    }, ae = function (e, t, n) {
        return n.months[t ? "shorthand" : "longhand"][e]
    }, w = {
        D: e, F: function (e, t, n) {
            e.setMonth(n.months.longhand.indexOf(t))
        }, G: function (e, t) {
            e.setHours(parseFloat(t))
        }, H: function (e, t) {
            e.setHours(parseFloat(t))
        }, J: function (e, t) {
            e.setDate(parseFloat(t))
        }, K: function (e, t, n) {
            e.setHours(e.getHours() % 12 + 12 * ee(new RegExp(n.amPM[1], "i").test(t)))
        }, M: function (e, t, n) {
            e.setMonth(n.months.shorthand.indexOf(t))
        }, S: function (e, t) {
            e.setSeconds(parseFloat(t))
        }, U: function (e, t) {
            return new Date(1e3 * parseFloat(t))
        }, W: function (e, t) {
            var n = parseInt(t);
            return new Date(e.getFullYear(), 0, 2 + 7 * (n - 1), 0, 0, 0, 0)
        }, Y: function (e, t) {
            e.setFullYear(parseFloat(t))
        }, Z: function (e, t) {
            return new Date(t)
        }, d: function (e, t) {
            e.setDate(parseFloat(t))
        }, h: function (e, t) {
            e.setHours(parseFloat(t))
        }, i: function (e, t) {
            e.setMinutes(parseFloat(t))
        }, j: function (e, t) {
            e.setDate(parseFloat(t))
        }, l: e, m: function (e, t) {
            e.setMonth(parseFloat(t) - 1)
        }, n: function (e, t) {
            e.setMonth(parseFloat(t) - 1)
        }, s: function (e, t) {
            e.setSeconds(parseFloat(t))
        }, w: e, y: function (e, t) {
            e.setFullYear(2e3 + parseFloat(t))
        }
    }, ie = {
        D: "(\\w+)",
        F: "(\\w+)",
        G: "(\\d\\d|\\d)",
        H: "(\\d\\d|\\d)",
        J: "(\\d\\d|\\d)\\w+",
        K: "",
        M: "(\\w+)",
        S: "(\\d\\d|\\d)",
        U: "(.+)",
        W: "(\\d\\d|\\d)",
        Y: "(\\d{4})",
        Z: "(.+)",
        d: "(\\d\\d|\\d)",
        h: "(\\d\\d|\\d)",
        i: "(\\d\\d|\\d)",
        j: "(\\d\\d|\\d)",
        l: "(\\w+)",
        m: "(\\d\\d|\\d)",
        n: "(\\d\\d|\\d)",
        s: "(\\d\\d|\\d)",
        w: "(\\d\\d|\\d)",
        y: "(\\d{2})"
    }, l = {
        Z: function (e) {
            return e.toISOString()
        }, D: function (e, t, n) {
            return t.weekdays.shorthand[l.w(e, t, n)]
        }, F: function (e, t, n) {
            return ae(l.n(e, t, n) - 1, !1, t)
        }, G: function (e, t, n) {
            return X(l.h(e, t, n))
        }, H: function (e) {
            return X(e.getHours())
        }, J: function (e, t) {
            return void 0 !== t.ordinal ? e.getDate() + t.ordinal(e.getDate()) : e.getDate()
        }, K: function (e, t) {
            return t.amPM[ee(11 < e.getHours())]
        }, M: function (e, t) {
            return ae(e.getMonth(), !0, t)
        }, S: function (e) {
            return X(e.getSeconds())
        }, U: function (e) {
            return e.getTime() / 1e3
        }, W: function (e, t, n) {
            return n.getWeek(e)
        }, Y: function (e) {
            return e.getFullYear()
        }, d: function (e) {
            return X(e.getDate())
        }, h: function (e) {
            return e.getHours() % 12 ? e.getHours() % 12 : 12
        }, i: function (e) {
            return X(e.getMinutes())
        }, j: function (e) {
            return e.getDate()
        }, l: function (e, t) {
            return t.weekdays.longhand[e.getDay()]
        }, m: function (e) {
            return X(e.getMonth() + 1)
        }, n: function (e) {
            return e.getMonth() + 1
        }, s: function (e) {
            return e.getSeconds()
        }, w: function (e) {
            return e.getDay()
        }, y: function (e) {
            return String(e.getFullYear()).substring(2)
        }
    }, oe = {
        weekdays: {
            shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
            longhand: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
        },
        months: {
            shorthand: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
            longhand: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
        },
        daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
        firstDayOfWeek: 0,
        ordinal: function (e) {
            var t = e % 100;
            if (3 < t && t < 21) return "th";
            switch (t % 10) {
                case 1:
                    return "st";
                case 2:
                    return "nd";
                case 3:
                    return "rd";
                default:
                    return "th"
            }
        },
        rangeSeparator: " to ",
        weekAbbreviation: "Wk",
        scrollTitle: "Scroll to increment",
        toggleTitle: "Click to toggle",
        amPM: ["AM", "PM"],
        yearAriaLabel: "Year"
    }, re = function (e) {
        var t = e.config, o = void 0 === t ? C : t, n = e.l10n, r = void 0 === n ? oe : n;
        return function (a, e, t) {
            var i = t || r;
            return void 0 !== o.formatDate ? o.formatDate(a, e, i) : e.split("").map(function (e, t, n) {
                return l[e] && "\\" !== n[t - 1] ? l[e](a, i, o) : "\\" !== e ? e : ""
            }).join("")
        }
    }, le = function (e) {
        var t = e.config, D = void 0 === t ? C : t, n = e.l10n, b = void 0 === n ? oe : n;
        return function (e, t, n, a) {
            if (0 === e || e) {
                var i, o = a || b, r = e;
                if (e instanceof Date) i = new Date(e.getTime()); else if ("string" != typeof e && void 0 !== e.toFixed) i = new Date(e); else if ("string" == typeof e) {
                    var l = t || (D || C).dateFormat, c = String(e).trim();
                    if ("today" === c) i = new Date, n = !0; else if (/Z$/.test(c) || /GMT$/.test(c)) i = new Date(e); else if (D && D.parseDate) i = D.parseDate(e, l); else {
                        i = D && D.noCalendar ? new Date((new Date).setHours(0, 0, 0, 0)) : new Date((new Date).getFullYear(), 0, 1, 0, 0, 0, 0);
                        for (var d, s = [], u = 0, f = 0, m = ""; u < l.length; u++) {
                            var g = l[u], p = "\\" === g, h = "\\" === l[u - 1] || p;
                            if (ie[g] && !h) {
                                m += ie[g];
                                var v = new RegExp(m).exec(e);
                                v && (d = !0) && s["Y" !== g ? "push" : "unshift"]({fn: w[g], val: v[++f]})
                            } else p || (m += ".");
                            s.forEach(function (e) {
                                var t = e.fn, n = e.val;
                                return i = t(i, n, o) || i
                            })
                        }
                        i = d ? i : void 0
                    }
                }
                if (i instanceof Date && !isNaN(i.getTime())) return !0 === n && i.setHours(0, 0, 0, 0), i;
                D.errorHandler(new Error("Invalid date provided: " + r))
            }
        }
    };

    function ce(e, t, n) {
        return void 0 === n && (n = !0), !1 !== n ? new Date(e.getTime()).setHours(0, 0, 0, 0) - new Date(t.getTime()).setHours(0, 0, 0, 0) : e.getTime() - t.getTime()
    }

    var de = function (e, t, n) {
            return e > Math.min(t, n) && e < Math.max(t, n)
        }, se = {DAY: 864e5},
        ue = ["onChange", "onClose", "onDayCreate", "onDestroy", "onKeyDown", "onMonthChange", "onOpen", "onParseConfig", "onReady", "onValueUpdate", "onYearChange", "onPreCalendarPosition"],
        C = {
            _disable: [],
            _enable: [],
            allowInput: !1,
            altFormat: "F j, Y",
            altInput: !1,
            altInputClass: "form-control input",
            animate: "object" == typeof window && -1 === window.navigator.userAgent.indexOf("MSIE"),
            ariaDateFormat: "F j, Y",
            clickOpens: !0,
            closeOnSelect: !0,
            conjunction: ", ",
            dateFormat: "Y-m-d",
            defaultHour: 12,
            defaultMinute: 0,
            defaultSeconds: 0,
            disable: [],
            disableMobile: !1,
            enable: [],
            enableSeconds: !1,
            enableTime: !1,
            errorHandler: function (e) {
                return "undefined" != typeof console && console.warn(e)
            },
            getWeek: function (e) {
                var t = new Date(e.getTime());
                t.setHours(0, 0, 0, 0), t.setDate(t.getDate() + 3 - (t.getDay() + 6) % 7);
                var n = new Date(t.getFullYear(), 0, 4);
                return 1 + Math.round(((t.getTime() - n.getTime()) / 864e5 - 3 + (n.getDay() + 6) % 7) / 7)
            },
            hourIncrement: 1,
            ignoredFocusElements: [],
            inline: !1,
            locale: "default",
            minuteIncrement: 5,
            mode: "single",
            nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",
            noCalendar: !1,
            now: new Date,
            onChange: [],
            onClose: [],
            onDayCreate: [],
            onDestroy: [],
            onKeyDown: [],
            onMonthChange: [],
            onOpen: [],
            onParseConfig: [],
            onReady: [],
            onValueUpdate: [],
            onYearChange: [],
            onPreCalendarPosition: [],
            plugins: [],
            position: "auto",
            positionElement: void 0,
            prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",
            shorthandCurrentMonth: !1,
            showMonths: 1,
            static: !1,
            time_24hr: !1,
            weekNumbers: !1,
            wrap: !1
        };

    function fe(e, t, n) {
        if (!0 === n) return e.classList.add(t);
        e.classList.remove(t)
    }

    function me(e, t, n) {
        var a = window.document.createElement(e);
        return t = t || "", n = n || "", a.className = t, void 0 !== n && (a.textContent = n), a
    }

    function ge(e) {
        for (; e.firstChild;) e.removeChild(e.firstChild)
    }

    function pe(e, t) {
        var n = me("div", "numInputWrapper"), a = me("input", "numInput " + e), i = me("span", "arrowUp"),
            o = me("span", "arrowDown");
        if (a.type = "text", a.pattern = "\\d*", void 0 !== t) for (var r in t) a.setAttribute(r, t[r]);
        return n.appendChild(a), n.appendChild(i), n.appendChild(o), n
    }

    "function" != typeof Object.assign && (Object.assign = function (n) {
        if (!n) throw TypeError("Cannot convert undefined or null to object");
        for (var e = arguments.length, a = new Array(1 < e ? e - 1 : 0), t = 1; t < e; t++) a[t - 1] = arguments[t];
        for (var i = function () {
            var t = a[o];
            t && Object.keys(t).forEach(function (e) {
                return n[e] = t[e]
            })
        }, o = 0; o < a.length; o++) i();
        return n
    });
    var he = 300;

    function r(d, s) {
        var h = {config: Object.assign({}, ve.defaultConfig), l10n: oe};

        function u(e) {
            return e.bind(h)
        }

        function t() {
            var t = h.config;
            !1 === t.weekNumbers && 1 === t.showMonths || !0 !== t.noCalendar && window.requestAnimationFrame(function () {
                if (h.calendarContainer.style.visibility = "hidden", h.calendarContainer.style.display = "block", void 0 !== h.daysContainer) {
                    var e = (h.days.offsetWidth + 1) * t.showMonths;
                    h.daysContainer.style.width = e + "px", h.calendarContainer.style.width = e + (void 0 !== h.weekWrapper ? h.weekWrapper.offsetWidth : 0) + "px", h.calendarContainer.style.removeProperty("visibility"), h.calendarContainer.style.removeProperty("display")
                }
            })
        }

        function f(e) {
            if (0 !== h.selectedDates.length) {
                void 0 !== e && "blur" !== e.type && function (e) {
                    e.preventDefault();
                    var t = "keydown" === e.type, n = e.target;
                    void 0 !== h.amPM && e.target === h.amPM && (h.amPM.textContent = h.l10n.amPM[ee(h.amPM.textContent === h.l10n.amPM[0])]);
                    var a = parseFloat(n.getAttribute("data-min")), i = parseFloat(n.getAttribute("data-max")),
                        o = parseFloat(n.getAttribute("data-step")), r = parseInt(n.value, 10),
                        l = e.delta || (t ? 38 === e.which ? 1 : -1 : 0), c = r + o * l;
                    if (void 0 !== n.value && 2 === n.value.length) {
                        var d = n === h.hourElement, s = n === h.minuteElement;
                        c < a ? (c = i + c + ee(!d) + (ee(d) && ee(!h.amPM)), s && v(void 0, -1, h.hourElement)) : i < c && (c = n === h.hourElement ? c - i - ee(!h.amPM) : a, s && v(void 0, 1, h.hourElement)), h.amPM && d && (1 === o ? c + r === 23 : Math.abs(c - r) > o) && (h.amPM.textContent = h.l10n.amPM[ee(h.amPM.textContent === h.l10n.amPM[0])]), n.value = X(c)
                    }
                }(e);
                var t = h._input.value;
                m(), Z(), h._input.value !== t && h._debouncedChange()
            }
        }

        function m() {
            if (void 0 !== h.hourElement && void 0 !== h.minuteElement) {
                var e, t, n = (parseInt(h.hourElement.value.slice(-2), 10) || 0) % 24,
                    a = (parseInt(h.minuteElement.value, 10) || 0) % 60,
                    i = void 0 !== h.secondElement ? (parseInt(h.secondElement.value, 10) || 0) % 60 : 0;
                void 0 !== h.amPM && (e = n, t = h.amPM.textContent, n = e % 12 + 12 * ee(t === h.l10n.amPM[1]));
                var o = void 0 !== h.config.minTime || h.config.minDate && h.minDateHasTime && h.latestSelectedDateObj && 0 === ce(h.latestSelectedDateObj, h.config.minDate, !0);
                if (void 0 !== h.config.maxTime || h.config.maxDate && h.maxDateHasTime && h.latestSelectedDateObj && 0 === ce(h.latestSelectedDateObj, h.config.maxDate, !0)) {
                    var r = void 0 !== h.config.maxTime ? h.config.maxTime : h.config.maxDate;
                    (n = Math.min(n, r.getHours())) === r.getHours() && (a = Math.min(a, r.getMinutes())), a === r.getMinutes() && (i = Math.min(i, r.getSeconds()))
                }
                if (o) {
                    var l = void 0 !== h.config.minTime ? h.config.minTime : h.config.minDate;
                    (n = Math.max(n, l.getHours())) === l.getHours() && (a = Math.max(a, l.getMinutes())), a === l.getMinutes() && (i = Math.max(i, l.getSeconds()))
                }
                c(n, a, i)
            }
        }

        function i(e) {
            var t = e || h.latestSelectedDateObj;
            t && c(t.getHours(), t.getMinutes(), t.getSeconds())
        }

        function a() {
            var e = h.config.defaultHour, t = h.config.defaultMinute, n = h.config.defaultSeconds;
            if (void 0 !== h.config.minDate) {
                var a = h.config.minDate.getHours(), i = h.config.minDate.getMinutes();
                (e = Math.max(e, a)) === a && (t = Math.max(i, t)), e === a && t === i && (n = h.config.minDate.getSeconds())
            }
            if (void 0 !== h.config.maxDate) {
                var o = h.config.maxDate.getHours(), r = h.config.maxDate.getMinutes();
                (e = Math.min(e, o)) === o && (t = Math.min(r, t)), e === o && t === r && (n = h.config.maxDate.getSeconds())
            }
            c(e, t, n)
        }

        function c(e, t, n) {
            void 0 !== h.latestSelectedDateObj && h.latestSelectedDateObj.setHours(e % 24, t, n || 0, 0), h.hourElement && h.minuteElement && !h.isMobile && (h.hourElement.value = X(h.config.time_24hr ? e : (12 + e) % 12 + 12 * ee(e % 12 == 0)), h.minuteElement.value = X(t), void 0 !== h.amPM && (h.amPM.textContent = h.l10n.amPM[ee(12 <= e)]), void 0 !== h.secondElement && (h.secondElement.value = X(n)))
        }

        function n(e) {
            var t = parseInt(e.target.value) + (e.delta || 0);
            (1 < t / 1e3 || "Enter" === e.key && !/[^\d]/.test(t.toString())) && _(t)
        }

        function o(t, n, a, i) {
            return n instanceof Array ? n.forEach(function (e) {
                return o(t, e, a, i)
            }) : t instanceof Array ? t.forEach(function (e) {
                return o(e, n, a, i)
            }) : (t.addEventListener(n, a, i), void h._handlers.push({element: t, event: n, handler: a, options: i}))
        }

        function r(t) {
            return function (e) {
                1 === e.which && t(e)
            }
        }

        function g() {
            q("onChange")
        }

        function l(e) {
            var t = void 0 !== e ? h.parseDate(e) : h.latestSelectedDateObj || (h.config.minDate && h.config.minDate > h.now ? h.config.minDate : h.config.maxDate && h.config.maxDate < h.now ? h.config.maxDate : h.now);
            try {
                void 0 !== t && (h.currentYear = t.getFullYear(), h.currentMonth = t.getMonth())
            } catch (e) {
                e.message = "Invalid date supplied: " + t, h.config.errorHandler(e)
            }
            h.redraw()
        }

        function p(e) {
            ~e.target.className.indexOf("arrow") && v(e, e.target.classList.contains("arrowUp") ? 1 : -1)
        }

        function v(e, t, n) {
            var a = e && e.target, i = n || a && a.parentNode && a.parentNode.firstChild, o = $("increment");
            o.delta = t, i && i.dispatchEvent(o)
        }

        function D(e, t, n, a) {
            var i, o = N(t, !0), r = me("span", "flatpickr-day " + e, t.getDate().toString());
            return r.dateObj = t, r.$i = a, r.setAttribute("aria-label", h.formatDate(t, h.config.ariaDateFormat)), -1 === e.indexOf("hidden") && 0 === ce(t, h.now) && ((h.todayDateElem = r).classList.add("today"), r.setAttribute("aria-current", "date")), o ? (r.tabIndex = -1, z(t) && (r.classList.add("selected"), h.selectedDateElem = r, "range" === h.config.mode && (fe(r, "startRange", h.selectedDates[0] && 0 === ce(t, h.selectedDates[0], !0)), fe(r, "endRange", h.selectedDates[1] && 0 === ce(t, h.selectedDates[1], !0)), "nextMonthDay" === e && r.classList.add("inRange")))) : r.classList.add("disabled"), "range" === h.config.mode && (i = t, !("range" !== h.config.mode || h.selectedDates.length < 2) && 0 <= ce(i, h.selectedDates[0]) && ce(i, h.selectedDates[1]) <= 0 && !z(t) && r.classList.add("inRange")), h.weekNumbers && 1 === h.config.showMonths && "prevMonthDay" !== e && n % 7 == 1 && h.weekNumbers.insertAdjacentHTML("beforeend", "<span class='flatpickr-day'>" + h.config.getWeek(t) + "</span>"), q("onDayCreate", r), r
        }

        function b(e) {
            e.focus(), "range" === h.config.mode && P(e)
        }

        function w(e) {
            for (var t = 0 < e ? 0 : h.config.showMonths - 1, n = 0 < e ? h.config.showMonths : -1, a = t; a != n; a += e) for (var i = h.daysContainer.children[a], o = 0 < e ? 0 : i.children.length - 1, r = 0 < e ? i.children.length : -1, l = o; l != r; l += e) {
                var c = i.children[l];
                if (-1 === c.className.indexOf("hidden") && N(c.dateObj)) return c
            }
        }

        function C(e, t) {
            var n = F(document.activeElement || document.body),
                a = void 0 !== e ? e : n ? document.activeElement : void 0 !== h.selectedDateElem && F(h.selectedDateElem) ? h.selectedDateElem : void 0 !== h.todayDateElem && F(h.todayDateElem) ? h.todayDateElem : w(0 < t ? 1 : -1);
            return void 0 === a ? h._input.focus() : n ? void function (e, t) {
                for (var n = -1 === e.className.indexOf("Month") ? e.dateObj.getMonth() : h.currentMonth, a = 0 < t ? h.config.showMonths : -1, i = 0 < t ? 1 : -1, o = n - h.currentMonth; o != a; o += i) for (var r = h.daysContainer.children[o], l = n - h.currentMonth === o ? e.$i + t : t < 0 ? r.children.length - 1 : 0, c = r.children.length, d = l; 0 <= d && d < c && d != (0 < t ? c : -1); d += i) {
                    var s = r.children[d];
                    if (-1 === s.className.indexOf("hidden") && N(s.dateObj) && Math.abs(e.$i - d) >= Math.abs(t)) return b(s)
                }
                h.changeMonth(i), C(w(i), 0)
            }(a, t) : b(a)
        }

        function y(e, t) {
            for (var n = (new Date(e, t, 1).getDay() - h.l10n.firstDayOfWeek + 7) % 7, a = h.utils.getDaysInMonth((t - 1 + 12) % 12), i = h.utils.getDaysInMonth(t), o = window.document.createDocumentFragment(), r = 1 < h.config.showMonths, l = r ? "prevMonthDay hidden" : "prevMonthDay", c = r ? "nextMonthDay hidden" : "nextMonthDay", d = a + 1 - n, s = 0; d <= a; d++, s++) o.appendChild(D(l, new Date(e, t - 1, d), d, s));
            for (d = 1; d <= i; d++, s++) o.appendChild(D("", new Date(e, t, d), d, s));
            for (var u = i + 1; u <= 42 - n && (1 === h.config.showMonths || s % 7 != 0); u++, s++) o.appendChild(D(c, new Date(e, t + 1, u % i), u, s));
            var f = me("div", "dayContainer");
            return f.appendChild(o), f
        }

        function M() {
            if (void 0 !== h.daysContainer) {
                ge(h.daysContainer), h.weekNumbers && ge(h.weekNumbers);
                for (var e = document.createDocumentFragment(), t = 0; t < h.config.showMonths; t++) {
                    var n = new Date(h.currentYear, h.currentMonth, 1);
                    n.setMonth(h.currentMonth + t), e.appendChild(y(n.getFullYear(), n.getMonth()))
                }
                h.daysContainer.appendChild(e), h.days = h.daysContainer.firstChild, "range" === h.config.mode && 1 === h.selectedDates.length && P()
            }
        }

        function x() {
            var e = me("div", "flatpickr-month"), t = window.document.createDocumentFragment(),
                n = me("span", "cur-month"), a = pe("cur-year", {tabindex: "-1"}),
                i = a.getElementsByTagName("input")[0];
            i.setAttribute("aria-label", h.l10n.yearAriaLabel), h.config.minDate && i.setAttribute("data-min", h.config.minDate.getFullYear().toString()), h.config.maxDate && (i.setAttribute("data-max", h.config.maxDate.getFullYear().toString()), i.disabled = !!h.config.minDate && h.config.minDate.getFullYear() === h.config.maxDate.getFullYear());
            var o = me("div", "flatpickr-current-month");
            return o.appendChild(n), o.appendChild(a), t.appendChild(o), e.appendChild(t), {
                container: e,
                yearElement: i,
                monthElement: n
            }
        }

        function E() {
            ge(h.monthNav), h.monthNav.appendChild(h.prevMonthNav);
            for (var e = h.config.showMonths; e--;) {
                var t = x();
                h.yearElements.push(t.yearElement), h.monthElements.push(t.monthElement), h.monthNav.appendChild(t.container)
            }
            h.monthNav.appendChild(h.nextMonthNav)
        }

        function T() {
            h.weekdayContainer ? ge(h.weekdayContainer) : h.weekdayContainer = me("div", "flatpickr-weekdays");
            for (var e = h.config.showMonths; e--;) {
                var t = me("div", "flatpickr-weekdaycontainer");
                h.weekdayContainer.appendChild(t)
            }
            return k(), h.weekdayContainer
        }

        function k() {
            var e = h.l10n.firstDayOfWeek, t = h.l10n.weekdays.shorthand.concat();
            0 < e && e < t.length && (t = t.splice(e, t.length).concat(t.splice(0, e)));
            for (var n = h.config.showMonths; n--;) h.weekdayContainer.children[n].innerHTML = "\n      <span class=flatpickr-weekday>\n        " + t.join("</span><span class=flatpickr-weekday>") + "\n      </span>\n      "
        }

        function I(e, t) {
            void 0 === t && (t = !0);
            var n = t ? e : e - h.currentMonth;
            n < 0 && !0 === h._hidePrevMonthArrow || 0 < n && !0 === h._hideNextMonthArrow || (h.currentMonth += n, (h.currentMonth < 0 || 11 < h.currentMonth) && (h.currentYear += 11 < h.currentMonth ? 1 : -1, h.currentMonth = (h.currentMonth + 12) % 12, q("onYearChange")), M(), q("onMonthChange"), G())
        }

        function O(e) {
            return !(!h.config.appendTo || !h.config.appendTo.contains(e)) || h.calendarContainer.contains(e)
        }

        function S(t) {
            if (h.isOpen && !h.config.inline) {
                var e = O(t.target),
                    n = t.target === h.input || t.target === h.altInput || h.element.contains(t.target) || t.path && t.path.indexOf && (~t.path.indexOf(h.input) || ~t.path.indexOf(h.altInput)),
                    a = "blur" === t.type ? n && t.relatedTarget && !O(t.relatedTarget) : !n && !e,
                    i = !h.config.ignoredFocusElements.some(function (e) {
                        return e.contains(t.target)
                    });
                a && i && (h.close(), "range" === h.config.mode && 1 === h.selectedDates.length && (h.clear(!1), h.redraw()))
            }
        }

        function _(e) {
            if (!(!e || h.config.minDate && e < h.config.minDate.getFullYear() || h.config.maxDate && e > h.config.maxDate.getFullYear())) {
                var t = e, n = h.currentYear !== t;
                h.currentYear = t || h.currentYear, h.config.maxDate && h.currentYear === h.config.maxDate.getFullYear() ? h.currentMonth = Math.min(h.config.maxDate.getMonth(), h.currentMonth) : h.config.minDate && h.currentYear === h.config.minDate.getFullYear() && (h.currentMonth = Math.max(h.config.minDate.getMonth(), h.currentMonth)), n && (h.redraw(), q("onYearChange"))
            }
        }

        function N(e, t) {
            void 0 === t && (t = !0);
            var n = h.parseDate(e, void 0, t);
            if (h.config.minDate && n && ce(n, h.config.minDate, void 0 !== t ? t : !h.minDateHasTime) < 0 || h.config.maxDate && n && 0 < ce(n, h.config.maxDate, void 0 !== t ? t : !h.maxDateHasTime)) return !1;
            if (0 === h.config.enable.length && 0 === h.config.disable.length) return !0;
            if (void 0 === n) return !1;
            for (var a, i = 0 < h.config.enable.length, o = i ? h.config.enable : h.config.disable, r = 0; r < o.length; r++) {
                if ("function" == typeof (a = o[r]) && a(n)) return i;
                if (a instanceof Date && void 0 !== n && a.getTime() === n.getTime()) return i;
                if ("string" == typeof a && void 0 !== n) {
                    var l = h.parseDate(a, void 0, !0);
                    return l && l.getTime() === n.getTime() ? i : !i
                }
                if ("object" == typeof a && void 0 !== n && a.from && a.to && n.getTime() >= a.from.getTime() && n.getTime() <= a.to.getTime()) return i
            }
            return !i
        }

        function F(e) {
            return void 0 !== h.daysContainer && (-1 === e.className.indexOf("hidden") && h.daysContainer.contains(e))
        }

        function A(e) {
            var t = e.target === h._input, n = h.config.allowInput, a = h.isOpen && (!n || !t),
                i = h.config.inline && t && !n;
            if (13 === e.keyCode && t) {
                if (n) return h.setDate(h._input.value, !0, e.target === h.altInput ? h.config.altFormat : h.config.dateFormat), e.target.blur();
                h.open()
            } else if (O(e.target) || a || i) {
                var o = !!h.timeContainer && h.timeContainer.contains(e.target);
                switch (e.keyCode) {
                    case 13:
                        o ? f() : B(e);
                        break;
                    case 27:
                        e.preventDefault(), R();
                        break;
                    case 8:
                    case 46:
                        t && !h.config.allowInput && (e.preventDefault(), h.clear());
                        break;
                    case 37:
                    case 39:
                        if (o) h.hourElement && h.hourElement.focus(); else if (e.preventDefault(), void 0 !== h.daysContainer && (!1 === n || F(document.activeElement))) {
                            var r = 39 === e.keyCode ? 1 : -1;
                            e.ctrlKey ? (I(r), C(w(1), 0)) : C(void 0, r)
                        }
                        break;
                    case 38:
                    case 40:
                        e.preventDefault();
                        var l = 40 === e.keyCode ? 1 : -1;
                        h.daysContainer && void 0 !== e.target.$i ? e.ctrlKey ? (_(h.currentYear - l), C(w(1), 0)) : o || C(void 0, 7 * l) : h.config.enableTime && (!o && h.hourElement && h.hourElement.focus(), f(e), h._debouncedChange());
                        break;
                    case 9:
                        if (!o) {
                            h.element.focus();
                            break
                        }
                        var c = [h.hourElement, h.minuteElement, h.secondElement, h.amPM].filter(function (e) {
                            return e
                        }), d = c.indexOf(e.target);
                        if (-1 !== d) {
                            var s = c[d + (e.shiftKey ? -1 : 1)];
                            void 0 !== s ? (e.preventDefault(), s.focus()) : h.element.focus()
                        }
                }
            }
            if (void 0 !== h.amPM && e.target === h.amPM) switch (e.key) {
                case h.l10n.amPM[0].charAt(0):
                case h.l10n.amPM[0].charAt(0).toLowerCase():
                    h.amPM.textContent = h.l10n.amPM[0], m(), Z();
                    break;
                case h.l10n.amPM[1].charAt(0):
                case h.l10n.amPM[1].charAt(0).toLowerCase():
                    h.amPM.textContent = h.l10n.amPM[1], m(), Z()
            }
            q("onKeyDown", e)
        }

        function P(o) {
            if (1 === h.selectedDates.length && (!o || o.classList.contains("flatpickr-day") && !o.classList.contains("disabled"))) {
                for (var r = o ? o.dateObj.getTime() : h.days.firstElementChild.dateObj.getTime(), l = h.parseDate(h.selectedDates[0], void 0, !0).getTime(), e = Math.min(r, h.selectedDates[0].getTime()), t = Math.max(r, h.selectedDates[0].getTime()), n = h.daysContainer.lastChild.lastChild.dateObj.getTime(), c = !1, d = 0, s = 0, a = e; a < n; a += se.DAY) N(new Date(a), !0) || (c = c || e < a && a < t, a < l && (!d || d < a) ? d = a : l < a && (!s || a < s) && (s = a));
                for (var u = 0; u < h.config.showMonths; u++) for (var f = h.daysContainer.children[u], m = h.daysContainer.children[u - 1], i = function (e, t) {
                    var n = f.children[e], a = n.dateObj.getTime(), i = 0 < d && a < d || 0 < s && s < a;
                    return i ? (n.classList.add("notAllowed"), ["inRange", "startRange", "endRange"].forEach(function (e) {
                        n.classList.remove(e)
                    }), "continue") : c && !i ? "continue" : (["startRange", "inRange", "endRange", "notAllowed"].forEach(function (e) {
                        n.classList.remove(e)
                    }), void (void 0 !== o && (o.classList.add(r < h.selectedDates[0].getTime() ? "startRange" : "endRange"), !f.contains(o) && 0 < u && m && m.lastChild.dateObj.getTime() >= a || (l < r && a === l ? n.classList.add("startRange") : r < l && a === l && n.classList.add("endRange"), d <= a && (0 === s || a <= s) && de(a, l, r) && n.classList.add("inRange")))))
                }, g = 0, p = f.children.length; g < p; g++) i(g)
            }
        }

        function j() {
            !h.isOpen || h.config.static || h.config.inline || L()
        }

        function Y(a) {
            return function (e) {
                var t = h.config["_" + a + "Date"] = h.parseDate(e, h.config.dateFormat),
                    n = h.config["_" + ("min" === a ? "max" : "min") + "Date"];
                void 0 !== t && (h["min" === a ? "minDateHasTime" : "maxDateHasTime"] = 0 < t.getHours() || 0 < t.getMinutes() || 0 < t.getSeconds()), h.selectedDates && (h.selectedDates = h.selectedDates.filter(function (e) {
                    return N(e)
                }), h.selectedDates.length || "min" !== a || i(t), Z()), h.daysContainer && (W(), void 0 !== t ? h.currentYearElement[a] = t.getFullYear().toString() : h.currentYearElement.removeAttribute(a), h.currentYearElement.disabled = !!n && void 0 !== t && n.getFullYear() === t.getFullYear())
            }
        }

        function H() {
            "object" != typeof h.config.locale && void 0 === ve.l10ns[h.config.locale] && h.config.errorHandler(new Error("flatpickr: invalid locale " + h.config.locale)), h.l10n = Object.assign({}, ve.l10ns.default, "object" == typeof h.config.locale ? h.config.locale : "default" !== h.config.locale ? ve.l10ns[h.config.locale] : void 0), ie.K = "(" + h.l10n.amPM[0] + "|" + h.l10n.amPM[1] + "|" + h.l10n.amPM[0].toLowerCase() + "|" + h.l10n.amPM[1].toLowerCase() + ")", h.formatDate = re(h), h.parseDate = le({
                config: h.config,
                l10n: h.l10n
            })
        }

        function L(e) {
            if (void 0 !== h.calendarContainer) {
                q("onPreCalendarPosition");
                var t = e || h._positionElement,
                    n = Array.prototype.reduce.call(h.calendarContainer.children, function (e, t) {
                        return e + t.offsetHeight
                    }, 0), a = h.calendarContainer.offsetWidth, i = h.config.position.split(" "), o = i[0],
                    r = 1 < i.length ? i[1] : null, l = t.getBoundingClientRect(), c = window.innerHeight - l.bottom,
                    d = "above" === o || "below" !== o && c < n && l.top > n,
                    s = window.pageYOffset + l.top + (d ? -n - 2 : t.offsetHeight + 2);
                if (fe(h.calendarContainer, "arrowTop", !d), fe(h.calendarContainer, "arrowBottom", d), !h.config.inline) {
                    var u = window.pageXOffset + l.left - (null != r && "center" === r ? (a - l.width) / 2 : 0),
                        f = window.document.body.offsetWidth - l.right, m = u + a > window.document.body.offsetWidth;
                    fe(h.calendarContainer, "rightMost", m), h.config.static || (h.calendarContainer.style.top = s + "px", m ? (h.calendarContainer.style.left = "auto", h.calendarContainer.style.right = f + "px") : (h.calendarContainer.style.left = u + "px", h.calendarContainer.style.right = "auto"))
                }
            }
        }

        function W() {
            h.config.noCalendar || h.isMobile || (G(), M())
        }

        function R() {
            h._input.focus(), -1 !== window.navigator.userAgent.indexOf("MSIE") || void 0 !== navigator.msMaxTouchPoints ? setTimeout(h.close, 0) : h.close()
        }

        function B(e) {
            e.preventDefault(), e.stopPropagation();
            var t = function e(t, n) {
                return n(t) ? t : t.parentNode ? e(t.parentNode, n) : void 0
            }(e.target, function (e) {
                return e.classList && e.classList.contains("flatpickr-day") && !e.classList.contains("disabled") && !e.classList.contains("notAllowed")
            });
            if (void 0 !== t) {
                var n = t, a = h.latestSelectedDateObj = new Date(n.dateObj.getTime()),
                    i = (a.getMonth() < h.currentMonth || a.getMonth() > h.currentMonth + h.config.showMonths - 1) && "range" !== h.config.mode;
                if (h.selectedDateElem = n, "single" === h.config.mode) h.selectedDates = [a]; else if ("multiple" === h.config.mode) {
                    var o = z(a);
                    o ? h.selectedDates.splice(parseInt(o), 1) : h.selectedDates.push(a)
                } else "range" === h.config.mode && (2 === h.selectedDates.length && h.clear(!1), h.selectedDates.push(a), 0 !== ce(a, h.selectedDates[0], !0) && h.selectedDates.sort(function (e, t) {
                    return e.getTime() - t.getTime()
                }));
                if (m(), i) {
                    var r = h.currentYear !== a.getFullYear();
                    h.currentYear = a.getFullYear(), h.currentMonth = a.getMonth(), r && q("onYearChange"), q("onMonthChange")
                }
                if (G(), M(), Z(), h.config.enableTime && setTimeout(function () {
                    return h.showTimeInput = !0
                }, 50), i || "range" === h.config.mode || 1 !== h.config.showMonths ? h.selectedDateElem && h.selectedDateElem.focus() : b(n), void 0 !== h.hourElement && setTimeout(function () {
                    return void 0 !== h.hourElement && h.hourElement.select()
                }, 451), h.config.closeOnSelect) {
                    var l = "single" === h.config.mode && !h.config.enableTime,
                        c = "range" === h.config.mode && 2 === h.selectedDates.length && !h.config.enableTime;
                    (l || c) && R()
                }
                g()
            }
        }

        h.parseDate = le({
            config: h.config,
            l10n: h.l10n
        }), h._handlers = [], h._bind = o, h._setHoursFromDate = i, h._positionCalendar = L, h.changeMonth = I, h.changeYear = _, h.clear = function (e) {
            void 0 === e && (e = !0);
            h.input.value = "", void 0 !== h.altInput && (h.altInput.value = "");
            void 0 !== h.mobileInput && (h.mobileInput.value = "");
            h.selectedDates = [], h.latestSelectedDateObj = void 0, !(h.showTimeInput = !1) === h.config.enableTime && a();
            h.redraw(), e && q("onChange")
        }, h.close = function () {
            h.isOpen = !1, h.isMobile || (h.calendarContainer.classList.remove("open"), h._input.classList.remove("active"));
            q("onClose")
        }, h._createElement = me, h.destroy = function () {
            void 0 !== h.config && q("onDestroy");
            for (var e = h._handlers.length; e--;) {
                var t = h._handlers[e];
                t.element.removeEventListener(t.event, t.handler, t.options)
            }
            if (h._handlers = [], h.mobileInput) h.mobileInput.parentNode && h.mobileInput.parentNode.removeChild(h.mobileInput), h.mobileInput = void 0; else if (h.calendarContainer && h.calendarContainer.parentNode) if (h.config.static && h.calendarContainer.parentNode) {
                var n = h.calendarContainer.parentNode;
                if (n.lastChild && n.removeChild(n.lastChild), n.parentNode) {
                    for (; n.firstChild;) n.parentNode.insertBefore(n.firstChild, n);
                    n.parentNode.removeChild(n)
                }
            } else h.calendarContainer.parentNode.removeChild(h.calendarContainer);
            h.altInput && (h.input.type = "text", h.altInput.parentNode && h.altInput.parentNode.removeChild(h.altInput), delete h.altInput);
            h.input && (h.input.type = h.input._type, h.input.classList.remove("flatpickr-input"), h.input.removeAttribute("readonly"), h.input.value = "");
            ["_showTimeInput", "latestSelectedDateObj", "_hideNextMonthArrow", "_hidePrevMonthArrow", "__hideNextMonthArrow", "__hidePrevMonthArrow", "isMobile", "isOpen", "selectedDateElem", "minDateHasTime", "maxDateHasTime", "days", "daysContainer", "_input", "_positionElement", "innerContainer", "rContainer", "monthNav", "todayDateElem", "calendarContainer", "weekdayContainer", "prevMonthNav", "nextMonthNav", "currentMonthElement", "currentYearElement", "navigationCurrentMonth", "selectedDateElem", "config"].forEach(function (e) {
                try {
                    delete h[e]
                } catch (e) {
                }
            })
        }, h.isEnabled = N, h.jumpToDate = l, h.open = function (e, t) {
            void 0 === t && (t = h._positionElement);
            if (!0 === h.isMobile) return e && (e.preventDefault(), e.target && e.target.blur()), void 0 !== h.mobileInput && (h.mobileInput.focus(), h.mobileInput.click()), void q("onOpen");
            if (h._input.disabled || h.config.inline) return;
            var n = h.isOpen;
            h.isOpen = !0, n || (h.calendarContainer.classList.add("open"), h._input.classList.add("active"), q("onOpen"), L(t));
            !0 === h.config.enableTime && !0 === h.config.noCalendar && (0 === h.selectedDates.length && (h.setDate(void 0 !== h.config.minDate ? new Date(h.config.minDate.getTime()) : new Date, !1), a(), Z()), !1 !== h.config.allowInput || void 0 !== e && h.timeContainer.contains(e.relatedTarget) || setTimeout(function () {
                return h.hourElement.select()
            }, 50))
        }, h.redraw = W, h.set = function (e, t) {
            null !== e && "object" == typeof e ? Object.assign(h.config, e) : (h.config[e] = t, void 0 !== K[e] ? K[e].forEach(function (e) {
                return e()
            }) : -1 < ue.indexOf(e) && (h.config[e] = ne(t)));
            h.redraw(), l(), Z(!1)
        }, h.setDate = function (e, t, n) {
            void 0 === t && (t = !1);
            void 0 === n && (n = h.config.dateFormat);
            if (0 !== e && !e || e instanceof Array && 0 === e.length) return h.clear(t);
            J(e, n), h.showTimeInput = 0 < h.selectedDates.length, h.latestSelectedDateObj = h.selectedDates[0], h.redraw(), l(), i(), Z(t), t && q("onChange")
        }, h.toggle = function (e) {
            if (!0 === h.isOpen) return h.close();
            h.open(e)
        };
        var K = {locale: [H, k], showMonths: [E, t, T]};

        function J(e, t) {
            var n = [];
            if (e instanceof Array) n = e.map(function (e) {
                return h.parseDate(e, t)
            }); else if (e instanceof Date || "number" == typeof e) n = [h.parseDate(e, t)]; else if ("string" == typeof e) switch (h.config.mode) {
                case"single":
                case"time":
                    n = [h.parseDate(e, t)];
                    break;
                case"multiple":
                    n = e.split(h.config.conjunction).map(function (e) {
                        return h.parseDate(e, t)
                    });
                    break;
                case"range":
                    n = e.split(h.l10n.rangeSeparator).map(function (e) {
                        return h.parseDate(e, t)
                    })
            } else h.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(e)));
            h.selectedDates = n.filter(function (e) {
                return e instanceof Date && N(e, !1)
            }), "range" === h.config.mode && h.selectedDates.sort(function (e, t) {
                return e.getTime() - t.getTime()
            })
        }

        function U(e) {
            return e.slice().map(function (e) {
                return "string" == typeof e || "number" == typeof e || e instanceof Date ? h.parseDate(e, void 0, !0) : e && "object" == typeof e && e.from && e.to ? {
                    from: h.parseDate(e.from, void 0),
                    to: h.parseDate(e.to, void 0)
                } : e
            }).filter(function (e) {
                return e
            })
        }

        function q(e, t) {
            if (void 0 !== h.config) {
                var n = h.config[e];
                if (void 0 !== n && 0 < n.length) for (var a = 0; n[a] && a < n.length; a++) n[a](h.selectedDates, h.input.value, h, t);
                "onChange" === e && (h.input.dispatchEvent($("change")), h.input.dispatchEvent($("input")))
            }
        }

        function $(e) {
            var t = document.createEvent("Event");
            return t.initEvent(e, !0, !0), t
        }

        function z(e) {
            for (var t = 0; t < h.selectedDates.length; t++) if (0 === ce(h.selectedDates[t], e)) return "" + t;
            return !1
        }

        function G() {
            h.config.noCalendar || h.isMobile || !h.monthNav || (h.yearElements.forEach(function (e, t) {
                var n = new Date(h.currentYear, h.currentMonth, 1);
                n.setMonth(h.currentMonth + t), h.monthElements[t].textContent = ae(n.getMonth(), h.config.shorthandCurrentMonth, h.l10n) + " ", e.value = n.getFullYear().toString()
            }), h._hidePrevMonthArrow = void 0 !== h.config.minDate && (h.currentYear === h.config.minDate.getFullYear() ? h.currentMonth <= h.config.minDate.getMonth() : h.currentYear < h.config.minDate.getFullYear()), h._hideNextMonthArrow = void 0 !== h.config.maxDate && (h.currentYear === h.config.maxDate.getFullYear() ? h.currentMonth + 1 > h.config.maxDate.getMonth() : h.currentYear > h.config.maxDate.getFullYear()))
        }

        function V(t) {
            return h.selectedDates.map(function (e) {
                return h.formatDate(e, t)
            }).filter(function (e, t, n) {
                return "range" !== h.config.mode || h.config.enableTime || n.indexOf(e) === t
            }).join("range" !== h.config.mode ? h.config.conjunction : h.l10n.rangeSeparator)
        }

        function Z(e) {
            if (void 0 === e && (e = !0), 0 === h.selectedDates.length) return h.clear(e);
            void 0 !== h.mobileInput && h.mobileFormatStr && (h.mobileInput.value = void 0 !== h.latestSelectedDateObj ? h.formatDate(h.latestSelectedDateObj, h.mobileFormatStr) : ""), h.input.value = V(h.config.dateFormat), void 0 !== h.altInput && (h.altInput.value = V(h.config.altFormat)), !1 !== e && q("onValueUpdate")
        }

        function Q(e) {
            e.preventDefault();
            var t = h.prevMonthNav.contains(e.target), n = h.nextMonthNav.contains(e.target);
            t || n ? I(t ? -1 : 1) : 0 <= h.yearElements.indexOf(e.target) ? e.target.select() : e.target.classList.contains("arrowUp") ? h.changeYear(h.currentYear + 1) : e.target.classList.contains("arrowDown") && h.changeYear(h.currentYear - 1)
        }

        return function () {
            h.element = h.input = d, h.isOpen = !1, function () {
                var e = ["wrap", "weekNumbers", "allowInput", "clickOpens", "time_24hr", "enableTime", "noCalendar", "altInput", "shorthandCurrentMonth", "inline", "static", "enableSeconds", "disableMobile"],
                    t = Object.assign({}, s, JSON.parse(JSON.stringify(d.dataset || {}))), n = {};
                h.config.parseDate = t.parseDate, h.config.formatDate = t.formatDate, Object.defineProperty(h.config, "enable", {
                    get: function () {
                        return h.config._enable
                    }, set: function (e) {
                        h.config._enable = U(e)
                    }
                }), Object.defineProperty(h.config, "disable", {
                    get: function () {
                        return h.config._disable
                    }, set: function (e) {
                        h.config._disable = U(e)
                    }
                });
                var a = "time" === t.mode;
                t.dateFormat || !t.enableTime && !a || (n.dateFormat = t.noCalendar || a ? "H:i" + (t.enableSeconds ? ":S" : "") : ve.defaultConfig.dateFormat + " H:i" + (t.enableSeconds ? ":S" : "")), t.altInput && (t.enableTime || a) && !t.altFormat && (n.altFormat = t.noCalendar || a ? "h:i" + (t.enableSeconds ? ":S K" : " K") : ve.defaultConfig.altFormat + " h:i" + (t.enableSeconds ? ":S" : "") + " K"), Object.defineProperty(h.config, "minDate", {
                    get: function () {
                        return h.config._minDate
                    }, set: Y("min")
                }), Object.defineProperty(h.config, "maxDate", {
                    get: function () {
                        return h.config._maxDate
                    }, set: Y("max")
                });
                var i = function (t) {
                    return function (e) {
                        h.config["min" === t ? "_minTime" : "_maxTime"] = h.parseDate(e, "H:i")
                    }
                };
                Object.defineProperty(h.config, "minTime", {
                    get: function () {
                        return h.config._minTime
                    }, set: i("min")
                }), Object.defineProperty(h.config, "maxTime", {
                    get: function () {
                        return h.config._maxTime
                    }, set: i("max")
                }), "time" === t.mode && (h.config.noCalendar = !0, h.config.enableTime = !0), Object.assign(h.config, n, t);
                for (var o = 0; o < e.length; o++) h.config[e[o]] = !0 === h.config[e[o]] || "true" === h.config[e[o]];
                ue.filter(function (e) {
                    return void 0 !== h.config[e]
                }).forEach(function (e) {
                    h.config[e] = ne(h.config[e] || []).map(u)
                }), h.isMobile = !h.config.disableMobile && !h.config.inline && "single" === h.config.mode && !h.config.disable.length && !h.config.enable.length && !h.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
                for (var r = 0; r < h.config.plugins.length; r++) {
                    var l = h.config.plugins[r](h) || {};
                    for (var c in l) -1 < ue.indexOf(c) ? h.config[c] = ne(l[c]).map(u).concat(h.config[c]) : void 0 === t[c] && (h.config[c] = l[c])
                }
                q("onParseConfig")
            }(), H(), function () {
                if (h.input = h.config.wrap ? d.querySelector("[data-input]") : d, !h.input) return h.config.errorHandler(new Error("Invalid input element specified"));
                h.input._type = h.input.type, h.input.type = "text", h.input.classList.add("flatpickr-input"), h._input = h.input, h.config.altInput && (h.altInput = me(h.input.nodeName, h.input.className + " " + h.config.altInputClass), h._input = h.altInput, h.altInput.placeholder = h.input.placeholder, h.altInput.disabled = h.input.disabled, h.altInput.required = h.input.required, h.altInput.tabIndex = h.input.tabIndex, h.altInput.type = "text", h.input.setAttribute("type", "hidden"), !h.config.static && h.input.parentNode && h.input.parentNode.insertBefore(h.altInput, h.input.nextSibling)), h.config.allowInput || h._input.setAttribute("readonly", "readonly"), h._positionElement = h.config.positionElement || h._input
            }(), function () {
                h.selectedDates = [], h.now = h.parseDate(h.config.now) || new Date;
                var e = h.config.defaultDate || ("INPUT" !== h.input.nodeName && "TEXTAREA" !== h.input.nodeName || !h.input.placeholder || h.input.value !== h.input.placeholder ? h.input.value : null);
                e && J(e, h.config.dateFormat);
                var t = 0 < h.selectedDates.length ? h.selectedDates[0] : h.config.minDate && h.config.minDate.getTime() > h.now.getTime() ? h.config.minDate : h.config.maxDate && h.config.maxDate.getTime() < h.now.getTime() ? h.config.maxDate : h.now;
                h.currentYear = t.getFullYear(), h.currentMonth = t.getMonth(), 0 < h.selectedDates.length && (h.latestSelectedDateObj = h.selectedDates[0]), void 0 !== h.config.minTime && (h.config.minTime = h.parseDate(h.config.minTime, "H:i")), void 0 !== h.config.maxTime && (h.config.maxTime = h.parseDate(h.config.maxTime, "H:i")), h.minDateHasTime = !!h.config.minDate && (0 < h.config.minDate.getHours() || 0 < h.config.minDate.getMinutes() || 0 < h.config.minDate.getSeconds()), h.maxDateHasTime = !!h.config.maxDate && (0 < h.config.maxDate.getHours() || 0 < h.config.maxDate.getMinutes() || 0 < h.config.maxDate.getSeconds()), Object.defineProperty(h, "showTimeInput", {
                    get: function () {
                        return h._showTimeInput
                    }, set: function (e) {
                        h._showTimeInput = e, h.calendarContainer && fe(h.calendarContainer, "showTimeInput", e), h.isOpen && L()
                    }
                })
            }(), h.utils = {
                getDaysInMonth: function (e, t) {
                    return void 0 === e && (e = h.currentMonth), void 0 === t && (t = h.currentYear), 1 === e && (t % 4 == 0 && t % 100 != 0 || t % 400 == 0) ? 29 : h.l10n.daysInMonth[e]
                }
            }, h.isMobile || function () {
                var e = window.document.createDocumentFragment();
                if (h.calendarContainer = me("div", "flatpickr-calendar"), h.calendarContainer.tabIndex = -1, !h.config.noCalendar) {
                    if (e.appendChild((h.monthNav = me("div", "flatpickr-months"), h.yearElements = [], h.monthElements = [], h.prevMonthNav = me("span", "flatpickr-prev-month"), h.prevMonthNav.innerHTML = h.config.prevArrow, h.nextMonthNav = me("span", "flatpickr-next-month"), h.nextMonthNav.innerHTML = h.config.nextArrow, E(), Object.defineProperty(h, "_hidePrevMonthArrow", {
                        get: function () {
                            return h.__hidePrevMonthArrow
                        }, set: function (e) {
                            h.__hidePrevMonthArrow !== e && (fe(h.prevMonthNav, "disabled", e), h.__hidePrevMonthArrow = e)
                        }
                    }), Object.defineProperty(h, "_hideNextMonthArrow", {
                        get: function () {
                            return h.__hideNextMonthArrow
                        }, set: function (e) {
                            h.__hideNextMonthArrow !== e && (fe(h.nextMonthNav, "disabled", e), h.__hideNextMonthArrow = e)
                        }
                    }), h.currentYearElement = h.yearElements[0], G(), h.monthNav)), h.innerContainer = me("div", "flatpickr-innerContainer"), h.config.weekNumbers) {
                        var t = function () {
                            h.calendarContainer.classList.add("hasWeeks");
                            var e = me("div", "flatpickr-weekwrapper");
                            e.appendChild(me("span", "flatpickr-weekday", h.l10n.weekAbbreviation));
                            var t = me("div", "flatpickr-weeks");
                            return e.appendChild(t), {weekWrapper: e, weekNumbers: t}
                        }(), n = t.weekWrapper, a = t.weekNumbers;
                        h.innerContainer.appendChild(n), h.weekNumbers = a, h.weekWrapper = n
                    }
                    h.rContainer = me("div", "flatpickr-rContainer"), h.rContainer.appendChild(T()), h.daysContainer || (h.daysContainer = me("div", "flatpickr-days"), h.daysContainer.tabIndex = -1), M(), h.rContainer.appendChild(h.daysContainer), h.innerContainer.appendChild(h.rContainer), e.appendChild(h.innerContainer)
                }
                h.config.enableTime && e.appendChild(function () {
                    h.calendarContainer.classList.add("hasTime"), h.config.noCalendar && h.calendarContainer.classList.add("noCalendar"), h.timeContainer = me("div", "flatpickr-time"), h.timeContainer.tabIndex = -1;
                    var e = me("span", "flatpickr-time-separator", ":"), t = pe("flatpickr-hour");
                    h.hourElement = t.getElementsByTagName("input")[0];
                    var n = pe("flatpickr-minute");
                    if (h.minuteElement = n.getElementsByTagName("input")[0], h.hourElement.tabIndex = h.minuteElement.tabIndex = -1, h.hourElement.value = X(h.latestSelectedDateObj ? h.latestSelectedDateObj.getHours() : h.config.time_24hr ? h.config.defaultHour : function (e) {
                        switch (e % 24) {
                            case 0:
                            case 12:
                                return 12;
                            default:
                                return e % 12
                        }
                    }(h.config.defaultHour)), h.minuteElement.value = X(h.latestSelectedDateObj ? h.latestSelectedDateObj.getMinutes() : h.config.defaultMinute), h.hourElement.setAttribute("data-step", h.config.hourIncrement.toString()), h.minuteElement.setAttribute("data-step", h.config.minuteIncrement.toString()), h.hourElement.setAttribute("data-min", h.config.time_24hr ? "0" : "1"), h.hourElement.setAttribute("data-max", h.config.time_24hr ? "23" : "12"), h.minuteElement.setAttribute("data-min", "0"), h.minuteElement.setAttribute("data-max", "59"), h.timeContainer.appendChild(t), h.timeContainer.appendChild(e), h.timeContainer.appendChild(n), h.config.time_24hr && h.timeContainer.classList.add("time24hr"), h.config.enableSeconds) {
                        h.timeContainer.classList.add("hasSeconds");
                        var a = pe("flatpickr-second");
                        h.secondElement = a.getElementsByTagName("input")[0], h.secondElement.value = X(h.latestSelectedDateObj ? h.latestSelectedDateObj.getSeconds() : h.config.defaultSeconds), h.secondElement.setAttribute("data-step", h.minuteElement.getAttribute("data-step")), h.secondElement.setAttribute("data-min", h.minuteElement.getAttribute("data-min")), h.secondElement.setAttribute("data-max", h.minuteElement.getAttribute("data-max")), h.timeContainer.appendChild(me("span", "flatpickr-time-separator", ":")), h.timeContainer.appendChild(a)
                    }
                    return h.config.time_24hr || (h.amPM = me("span", "flatpickr-am-pm", h.l10n.amPM[ee(11 < (h.latestSelectedDateObj ? h.hourElement.value : h.config.defaultHour))]), h.amPM.title = h.l10n.toggleTitle, h.amPM.tabIndex = -1, h.timeContainer.appendChild(h.amPM)), h.timeContainer
                }()), fe(h.calendarContainer, "rangeMode", "range" === h.config.mode), fe(h.calendarContainer, "animate", !0 === h.config.animate), fe(h.calendarContainer, "multiMonth", 1 < h.config.showMonths), h.calendarContainer.appendChild(e);
                var i = void 0 !== h.config.appendTo && void 0 !== h.config.appendTo.nodeType;
                if ((h.config.inline || h.config.static) && (h.calendarContainer.classList.add(h.config.inline ? "inline" : "static"), h.config.inline && (!i && h.element.parentNode ? h.element.parentNode.insertBefore(h.calendarContainer, h._input.nextSibling) : void 0 !== h.config.appendTo && h.config.appendTo.appendChild(h.calendarContainer)), h.config.static)) {
                    var o = me("div", "flatpickr-wrapper");
                    h.element.parentNode && h.element.parentNode.insertBefore(o, h.element), o.appendChild(h.element), h.altInput && o.appendChild(h.altInput), o.appendChild(h.calendarContainer)
                }
                h.config.static || h.config.inline || (void 0 !== h.config.appendTo ? h.config.appendTo : window.document.body).appendChild(h.calendarContainer)
            }(), function () {
                if (h.config.wrap && ["open", "close", "toggle", "clear"].forEach(function (t) {
                    Array.prototype.forEach.call(h.element.querySelectorAll("[data-" + t + "]"), function (e) {
                        return o(e, "click", h[t])
                    })
                }), h.isMobile) return function () {
                    var e = h.config.enableTime ? h.config.noCalendar ? "time" : "datetime-local" : "date";
                    h.mobileInput = me("input", h.input.className + " flatpickr-mobile"), h.mobileInput.step = h.input.getAttribute("step") || "any", h.mobileInput.tabIndex = 1, h.mobileInput.type = e, h.mobileInput.disabled = h.input.disabled, h.mobileInput.required = h.input.required, h.mobileInput.placeholder = h.input.placeholder, h.mobileFormatStr = "datetime-local" === e ? "Y-m-d\\TH:i:S" : "date" === e ? "Y-m-d" : "H:i:S", 0 < h.selectedDates.length && (h.mobileInput.defaultValue = h.mobileInput.value = h.formatDate(h.selectedDates[0], h.mobileFormatStr)), h.config.minDate && (h.mobileInput.min = h.formatDate(h.config.minDate, "Y-m-d")), h.config.maxDate && (h.mobileInput.max = h.formatDate(h.config.maxDate, "Y-m-d")), h.input.type = "hidden", void 0 !== h.altInput && (h.altInput.type = "hidden");
                    try {
                        h.input.parentNode && h.input.parentNode.insertBefore(h.mobileInput, h.input.nextSibling)
                    } catch (e) {
                    }
                    o(h.mobileInput, "change", function (e) {
                        h.setDate(e.target.value, !1, h.mobileFormatStr), q("onChange"), q("onClose")
                    })
                }();
                var e = te(j, 50);
                h._debouncedChange = te(g, he), h.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent) && o(h.daysContainer, "mouseover", function (e) {
                    "range" === h.config.mode && P(e.target)
                }), o(window.document.body, "keydown", A), h.config.static || o(h._input, "keydown", A), h.config.inline || h.config.static || o(window, "resize", e), void 0 !== window.ontouchstart ? o(window.document, "click", S) : o(window.document, "mousedown", r(S)), o(window.document, "focus", S, {capture: !0}), !0 === h.config.clickOpens && (o(h._input, "focus", h.open), o(h._input, "mousedown", r(h.open))), void 0 !== h.daysContainer && (o(h.monthNav, "mousedown", r(Q)), o(h.monthNav, ["keyup", "increment"], n), o(h.daysContainer, "mousedown", r(B))), void 0 !== h.timeContainer && void 0 !== h.minuteElement && void 0 !== h.hourElement && (o(h.timeContainer, ["increment"], f), o(h.timeContainer, "blur", f, {capture: !0}), o(h.timeContainer, "mousedown", r(p)), o([h.hourElement, h.minuteElement], ["focus", "click"], function (e) {
                    return e.target.select()
                }), void 0 !== h.secondElement && o(h.secondElement, "focus", function () {
                    return h.secondElement && h.secondElement.select()
                }), void 0 !== h.amPM && o(h.amPM, "mousedown", r(function (e) {
                    f(e), g()
                })))
            }(), (h.selectedDates.length || h.config.noCalendar) && (h.config.enableTime && i(h.config.noCalendar ? h.latestSelectedDateObj || h.config.minDate : void 0), Z(!1)), t(), h.showTimeInput = 0 < h.selectedDates.length || h.config.noCalendar;
            var e = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
            !h.isMobile && e && L(), q("onReady")
        }(), h
    }

    function n(e, t) {
        for (var n = Array.prototype.slice.call(e), a = [], i = 0; i < n.length; i++) {
            var o = n[i];
            try {
                if (null !== o.getAttribute("data-fp-omit")) continue;
                void 0 !== o._flatpickr && (o._flatpickr.destroy(), o._flatpickr = void 0), o._flatpickr = r(o, t || {}), a.push(o._flatpickr)
            } catch (e) {
                console.error(e)
            }
        }
        return 1 === a.length ? a[0] : a
    }

    "undefined" != typeof HTMLElement && (HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (e) {
        return n(this, e)
    }, HTMLElement.prototype.flatpickr = function (e) {
        return n([this], e)
    });
    var ve = function (e, t) {
        return e instanceof NodeList ? n(e, t) : n("string" == typeof e ? window.document.querySelectorAll(e) : [e], t)
    };
    return ve.defaultConfig = C, ve.l10ns = {
        en: Object.assign({}, oe),
        default: Object.assign({}, oe)
    }, ve.localize = function (e) {
        ve.l10ns.default = Object.assign({}, ve.l10ns.default, e)
    }, ve.setDefaults = function (e) {
        ve.defaultConfig = Object.assign({}, ve.defaultConfig, e)
    }, ve.parseDate = le({}), ve.formatDate = re({}), ve.compareDates = ce, "undefined" != typeof jQuery && (jQuery.fn.flatpickr = function (e) {
        return n(this, e)
    }), Date.prototype.fp_incr = function (e) {
        return new Date(this.getFullYear(), this.getMonth(), this.getDate() + ("string" == typeof e ? parseInt(e, 10) : e))
    }, "undefined" != typeof window && (window.flatpickr = ve), ve
});


$(window).on("load", function () {
    "use strict";


    $(".flatpickr").flatpickr({
        wrap: true
    });


});


